Git review
学习链接:廖雪峰老师的git教程
侵联立删
repository: 版本库 可以理解成一个目录,这个目录里面所有文件都可以被git管理起来,每个文件的修改删除,git都能跟踪。
- 创建一个repository
1 |
mkdir learngit |
- 通过git init命令把这个目录变成git可以管理的目录
1 |
git init |
也不一定必须在空目录下构建git仓库,选择一个已经有东西的目录也是可以的。
tips: 所有的版本控制系统,其实也只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等。而视频、图片这些二进制文件,虽然也能有版本控制系统管理但是没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从100KB变成了120KB。但到底改了啥,版本控制系统不知道,也没法知道。
- 编写一个readme.txt文件
一定要放到learngit目录(或子目录下)
- git add
1 |
git add readme.txt |
- git commit
1 |
git commit -m "wrote a readme file" |
为什么git添加文件需要add commit两步?因为commit可以一次提交很多文件,所以可以多次add不同文件
1 |
git add file1.txt |
- git status
git status可以帮助掌握仓库当前状态,告知哪些文件被修改了,但是想知道具体修改哪些内容git diff 命令
1 |
git diff readme.txt |
- git log
版本控制系统的history,即提交历史
简洁显示版
1 |
git log --pretty=online |
- git reset版本回退
1 |
git reset --hard HEAD^ |
- git reflog
可以查看命令历史,以便知道要回到未来的哪个版本
tips: git log 可以查看提交历史,以便确定要回退到哪个版本
每次修改 如果不用git add到暂存区,那就不会加入到commit中
- git checkout
1 |
git checkout -- readme.txt |
上面这个命令就是把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
1. readme.txt自修改后还没有被放到暂存区,现在撤销修改就回到和版本库一模一样的状态
1. readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
总之,就是让这个文件回到最近一次git commit或git add时的状态
tips: 对于添加到暂存区还没没有commit,想回退到版本库状态,可以使用
1 |
git reset HEAD readme.txt |
question: 创建一个文件后 修改并git add, 在git commit之前又删除了这个文件,现在想撤销删除操作,执行git checkout – filename操作会怎么样
-
分支管理
- 创建dev分支
1
git checkout -b dev
相当于两条命令:
1
2git branch dev
git checkout dev使用git branch命令查看当前分支
1
git branch
- 将dev分支的工作成果合并到master分支上
1
git merge dev
- 合并完成后可以删除dev分支
1
git branch -d dev
-
switch
最新版本的git提供了新的git switch命令来切换分支 以区别checkout既要撤销又作切换时的易混淆问题
1
2git switch -c dev #创建并切换到新的dev分支
git switch master #直接切换到已有的分支
question: 本地仓库名与远程仓库名不一样
github私有仓库是否可以git (免费)